Technological advances have increased computer utilization significantly in recent years. Various techniques have been developed to enable computer users to efficiently and securely utilize their computing devices. For example, as users increasingly perform work related tasks on the same device that they use for personal computing activities, the need to secure each environment on the device becomes increasingly important.
Virtualization is one technique that enables a single host running a virtual machine monitor to present multiple abstractions and/or views of the host, such that the underlying hardware of the host appears as one or more independently operating virtual machines. Each VM may function as a self-contained platform, running its own operating system (“OS”), or a copy of the OS, and/or a software application(s). The VMM manages allocation of resources to the guest software and performs context switching as necessary to cycle between various virtual machines according to a round-robin or other predetermined scheme.
Virtualization thus provides a software-based solution that enables users to isolate various computing environments. As is typical with software-based solutions, however, virtualization adds a degree of complexity and computing requirements to the device, which may burden the device unnecessarily.